/**
 * 获取最佳题目评分结果
 * @param answerList
 * @param questions
 * @param question_results
 */
export default function getBestQuestionResult(answerList, questions, question_results) {
  // 初始化一个对象，用于存储每个MBTI特质的计数
  const optionCount = {};

  // 遍历答案列表
  answerList.forEach((answer, index) => {
    // 获取对应的题目
    const question = questions[index];

    // 遍历题目的选项
    question.options.forEach(option => {
      // 如果答案和选项的key匹配
      if (option.key === answer) {
        // 获取选项的result属性
        const result = option.result;

        // 如果result属性不在optionCount中，初始化为0
        if (!optionCount[result]) {
          optionCount[result] = 0;
        }

        // 在optionCount中增加计数
        optionCount[result]++;
      }
    });
  });

  // 初始化最高分数和最高分数对应的评分结果
  let maxScore = 0;
  let maxScoreResult = null;

  // 遍历评分结果列表
  question_results.forEach(result => {
    // 计算当前评分结果的分数
    const score = result.resultProp.reduce((count, prop) => {
      return count + (optionCount[prop] || 0);
    }, 0);

    // 如果分数高于当前最高分数，更新最高分数和最高分数对应的评分结果
    if (score > maxScore) {
      maxScore = score;
      maxScoreResult = result;
    }
  });

  // 返回最高分数和最高分数对应的评分结果
  return maxScoreResult;
}




